package com.augurit.gzcgwsp.printDoc.service;

import java.util.List;
import java.util.Map;

import org.springside.modules.orm.Page;

import com.augurit.common.base.service.ICrudService;
import com.augurit.common.system.web.auth.form.LoginUserForm;
import com.augurit.gzcgwsp.printDoc.web.form.YwPrintDocForm;
import com.augurit.wf.bi.web.form.WfTemplateAttachmentRefForm;
import com.augurit.wf.common.entity.WfBusInstance;

public interface IYwPrintDocService extends ICrudService<YwPrintDocForm, Long> {
	public List<YwPrintDocForm> get(String templateCode, String fileCode, Long ywId);
	/**
	 * 根据业务id查找
	 * @param ywId
	 * @return
	 */
	public List<YwPrintDocForm> getByYwid(Long ywId,String tempcode);
	
    public WfTemplateAttachmentRefForm updateRefForm(YwPrintDocForm form,
            String templateId,String userName);
    //主要设置模版id和时间
    public YwPrintDocForm setForm(YwPrintDocForm form,String templateId);
    public YwPrintDocForm getFormById(Long ywId);
	public List<YwPrintDocForm> getNoFcode(String templateCode, Long ywId);
    
	
	/**
     * 根据templateCode和fileCore/ywId查找文书
     */
    public YwPrintDocForm getSltjFile(String templateCode,String fileCoe,Long ywId);
    /**
     * 修改时间，如果经营许可的补正材料通知书就改变答复时间
     * 计算方式为制作文书的时间加上一个月 再加10个工作日
     */
	//public void updateDate(YwPrintDocForm form);
    /**
     * 检查告知书数据
     */
	public boolean checkDate(String ywId, String templateCode, String fileCode);
	/**
	 * 保存
	 * @param form
	 */
	public void saveEntity(YwPrintDocForm form);
	/**
	 * 根据id和模版编号获取值
	 * @param templateCode
	 * @param masterEntityKey
	 * @return
	 */
	public  Map<String,String> getMapByTemplate(String templateCode,String id);
	/**
	 * 查询文书
	 * @param templateCode
	 * @param parseLong
	 * @param filecode
	 * @return
	 */
	public List<YwPrintDocForm> getFile(String templateCode, long parseLong,
			String filecode);
	
	 /**
     * 制作收件通知书修改受理号
     * @param ywId 业务id
     * @param templateCode 业务编号
     */ 
	public String updateAcceptNo(String templateCode,String ywId);
	/**
	 * 获取文书的类别
	 * @param param
	 * @return
	 */
	public List getFileType(Map param);
	
	/**
	 * 分页查询
	 * @param page
	 * @param map
	 * @return
	 */
	public Page search(Page page, Map map);
	/**
	 * 导出excel
	 * @param map
	 * @return
	 */
	public String exportExcel(Map map);
	
	/**
	 * 查询文号是否有错误
	 * @param ywId
	 * @param templateCode
	 * @param fileCode
	 * @param fileNum
	 * @return
	 */
	public boolean checkFileNum(String ywId, String templateCode,
			String fileCode, String fileNum);
	
	/**
	 * 查询文号是否重复
	 * @param ywId
	 * @param templateCode
	 * @param fileCode
	 * @param fileNum
	 * @param loginUser
	 * @return
	 */
	public boolean checkQuFileNum(String ywId, String templateCode,
			String fileCode, String fileNum, LoginUserForm loginUser);
	/**
	 * 检查是否制作了文书
	 * @param ywId
	 * @param templateCode
	 * @param fileCode
	 * @return
	 */
	public String checkQuData(String ywId, String templateCode, String fileCode);
	/**
	 * 查询区的文号
	 * @param page
	 * @param map
	 * @return
	 */
	public Page searchQuFileNum(Page page, Map map);
	
	/**
	 * 获取区的文号类型
	 * @param param
	 * @return
	 */
	public List getquFileType(Map param);
	
	public WfBusInstance getWfBusInstance(String templateCode,  Long ywId);
	public void savequEntity(YwPrintDocForm form);
	
	public Page searchRqQyDjb(Page page, Map map);
	/**
	 * 更新区的受理号
	 * @param templateCode
	 * @param masterEntityKey 实体id
	 * @return
	 */
	public String updateQuAcceptNo(String templateCode, String masterEntityKey,String area);
}